In many machine learning implementations, much of the effort is expended on manually designing features for the purposes of simplifying the learning problem for the classifier. In the case that the inputs are variable-length, feature engineering is almost always required in order to turn the variable-length representation of the raw data into a fixed-length representation that a classifier (e.g., decision tree, logistic regression, neural network, etc.) can then use to make decisions about inputs. In this case, the usefulness of the classifier is almost entirely dependent on the ability of the domain experts to reduce an input of perhaps arbitrary length to a set of fixed descriptive features in a way that maintains predictive power.